package com.ansion.commonchat.startup.workmanager.bwork.utils.futures;

import androidx.annotation.Nullable;

import com.google.common.util.concurrent.ListenableFuture;

/**
 * Created by wanghongjie on 2023/5/5
 * Describe : 用于创建一个可以被后续方法调用完成或取消的SettableFuture。
 * 它是通过实现ListenableFuture<V>接口，以及实现添加元素、异常、其他future的方法来完成任务的
 */
public final class BSettableFuture<V> extends AbstractFuture<V> {

    public static <V> BSettableFuture<V> create() {
        return new BSettableFuture<V>();
    }

    @Override
    public boolean set(@Nullable V value) {
        return super.set(value);
    }

    @Override
    public boolean setException(Throwable throwable) {
        return super.setException(throwable);
    }

    @Override
    public boolean setFuture(ListenableFuture<? extends V> future) {
        return super.setFuture(future);
    }

    private BSettableFuture() {
    }
}